home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / man / gemw.man < prev    next >
Text File  |  1993-11-19  |  8KB  |  217 lines

  1.                      GEM++ - C++ LIBRARIES FOR GEM/AES/VDI
  2.  
  3.  
  4.  
  5. NAME
  6.      GEMwindow - Standard GEM windows.
  7.  
  8. DESCRIPTION
  9.      A GEMwindow is a standard GEM window.  Its contents is undefined,
  10.      and redraw requests have no effect - derived classes should
  11.      implement this.  It does however handle the requirement of clipping
  12.      the redraw area, as well as resizing and scrollbars if those
  13.      controls are included in the window parts.
  14.  
  15. CONSTRUCTORS
  16.      GEMwindow(GEMactivity& act, int Parts)
  17.        Create a window with the given parts (see gemfast.h).
  18.  
  19.      GEMwindow(GEMactivity& act, int Parts, const GRect&)
  20.        Create a window with the given parts and the given size.
  21.  
  22.      GEMwindow(GEMactivity& act, int Parts, const GRect& actWorkArea, const GRect& maxWorkArea)
  23.        Create a window with the given parts and the given size for work
  24.        and maximum size.
  25.  
  26.      GEMwindow(const GEMwindow&)
  27.        Create a window which is a copy of the given window in every
  28.        way, except positioned slightly to the right of and below the
  29.        original, and not open.
  30.  
  31. METHODS
  32.      virtual void Open()
  33.        Open the window.  If the window is already open, it is
  34.        raised to the top.  This call may fail if no windows are
  35.        available - use IsOpen() to check, if it matters.
  36.  
  37.      virtual void Close()
  38.        Close the window.  If the window is already closed, nothing
  39.        happens.
  40.  
  41.      void BecomeDeleted()
  42.        GEM "automatically" deletes desk accessory windows when the current
  43.        application changes - it then calls AC_CLOSE.  This method changes
  44.        the internal information to reflect what GEM has done.
  45.  
  46.      virtual bool  IsOpen()
  47.        TRUE iff the window is open.
  48.  
  49.      GRect BorderRect()
  50.        Returns the entire area covered by the window, including the
  51.        GEM frame.
  52.  
  53.      GRect WorkRect()
  54.        Returns the area of the interior of the window.
  55.  
  56.      virtual void Top(const GEMevent&)
  57.        Raise the window to the top - an event handler.
  58.  
  59.      virtual void Move(int X, int Y)
  60.        Move the window such that the top-left of the frame is at the given
  61.        pixel position, aligned to the current alignment - see Align() below.
  62.  
  63.      virtual void Resize(int w, int h)
  64.        Set the frame of the window to the given pixel dimensions.
  65.  
  66.      virtual GEMfeedback Click(const GEMevent&)
  67.        An event handler that is called when the user clicks on the window.
  68.  
  69.      void RedrawOverlaps(const GRect&)
  70.        Calls the virtual protected Redraw() method for all the visible
  71.        regions of the given area.
  72.  
  73.      int Handle()
  74.        Returns the GEM handle of the window.
  75.  
  76.      void Align(int x, int y, int xmult=8, int ymult=1);
  77.        Subsequent moves will align such that (x,y) is a multiple
  78.        of (xmult,ymult).
  79.  
  80.      virtual GEMfeedback UserClosed()
  81.      virtual void UserFulled()
  82.      virtual void UserResized( int w,int h )
  83.      virtual void UserMoved( int x, int y )
  84.        These methods provide an additional level of indirection.
  85.        GEMactivity calls THESE methods when the user manipulates
  86.        a window, and these methods simply call the Close, Resize,
  87.        and Move methods above.  However, a SPONTANEOUS Close, Resize,
  88.        or Move (say, done my a menu item) will call the direct
  89.        methods.  See GEMformiconwindow for an example.
  90.      
  91.      virtual GEMfeedback VSlidered(int newPos)
  92.      virtual GEMfeedback LineUp()
  93.      virtual GEMfeedback LineDown()
  94.      virtual GEMfeedback PageUp()
  95.      virtual GEMfeedback PageDown()
  96.        Methods called when the vertical slider is manipulated.
  97.        Normal semantics is as per GEMslider.
  98.      
  99.      virtual GEMfeedback HSlidered(int newPos)
  100.      virtual GEMfeedback ColumnLeft()
  101.      virtual GEMfeedback ColumnRight()
  102.      virtual GEMfeedback PageLeft()
  103.      virtual GEMfeedback PageRight()
  104.        Methods called when the horizontal slider is manipulated.
  105.        Normal semantics is as per GEMslider.
  106.  
  107.      char *InfoText() const
  108.        Return a pointer to the current information line text.
  109.      void SetInfoText( const char * );
  110.        Sets the current information line to a COPY of the given string,
  111.        deleting the old information text.
  112.  
  113.      const char *Name()
  114.        Return a pointer to the current window name text.
  115.      void SetName( const char * );
  116.        Sets the window name to a COPY of the given string, deleting
  117.        the old name text.
  118.  
  119.      virtual void Flush()
  120.        Redraws the window to take into account scrollbar adjustments.
  121.        The default is to simply redraw the entire window.
  122.  
  123.      void SetVisibleLines( int noOfLines )
  124.      int VisibleLines()
  125.        Set/get the number of vertical units that the application
  126.        considers to be visible.
  127.  
  128.      void SetTotalLines( int noOfLines )
  129.        Set the number of vertical units that the application considers
  130.        to be represented by the entire scrollbar.
  131.  
  132.      void SetTopLine( int noOfLine )
  133.      int TopLine()
  134.        Set/get the line number (starting at 0) that the application
  135.        considers to be at the top of the visible area.
  136.  
  137.      int LineHeight()
  138.      void LineHeight(int i)
  139.        Set/get the PIXEL size of what the application considers a
  140.        vertical unit.
  141.  
  142.      void SetVisibleColumns( int noOfColumns )
  143.      int VisibleColumns()
  144.      void SetTotalColumns( int noOfColumns )
  145.      void SetLeftColumn( int noOfColumn )
  146.      int LeftColumn()
  147.      int ColumnWidth()
  148.      void ColumnWidth(int i)
  149.        As for Line methods above, but for horizontal (Column) units.
  150.  
  151.      void SetPartColour(int part, short activecolour, short inactivecolour)
  152.        Set the colour of a given window-part.  Note that the "colour"
  153.        is actually as per the ob_spec field of a G_BOXCHAR.  The active
  154.        colour is for when the window is topped, the inactive for when it
  155.        is not.
  156.  
  157.      void SetPartColours(GEMform& active, GEMform& inactive)
  158.        Set all parts to the colours defined by the given form by taking
  159.        colours of the objects with the same number as the corresponding
  160.        part.  For example, object 8 (==W_SIZER) will be used for the
  161.        colour of the sizer part.
  162.  
  163.        As standard RSC file (WINCOL.RSC) accompanies GEM++ with forms
  164.        which look like standard windows, the objects of which are
  165.        correctly ordered.
  166.  
  167.      short PartColour(int part, bool active_not_inactive)
  168.        Get the colour of a given window-part, as for SetPartColour().
  169.        NOTE: This only works with WINX installed.
  170.  
  171.      void DefaultPartColour(int part)
  172.        Cause the given part to take on the system default colour rather
  173.        than any previously set by SetPartColour().
  174.        NOTE: This only works with WINX installed.
  175.  
  176. PROTECTED MEMBERS:
  177.      int parts
  178.        The window-parts with which the window was created.
  179.      virtual void SetWorkRect( const GRect& )
  180.        Derived classes may wish to modify the rectangle or note changes
  181.        before or after passing to GEMwindow::SetWorkRect().
  182.      virtual bool VAlignSlider()
  183.      virtual bool HAlignSlider()
  184.        Derived classes may wish to note changes to the slider positions.
  185.        Should return TRUE iff the window is changed by the call.
  186.      virtual void Redraw(const GRect&)
  187.        Redraw the given area of the window.  No further clipping is
  188.        required to the given rectangle.  The procedure does NOTHING
  189.        for GEMwindows - derived classes should override this method.
  190.        Also, this method should not use wind_update(), as that is
  191.        done within RedrawOverlaps().
  192.  
  193. EXTENSION
  194.      A derived class should override Redraw() and Click(), and usually
  195.      the protected methods above.
  196.  
  197. SEE ALSO
  198.      GEMformwindow
  199.  
  200. BUGS
  201.      Bugs in GEM++ should be reported to warwick@cs.uq.oz.au
  202.  
  203. AUTHORS
  204.      Warwick Allison, 1993.      Andre Pareis, 1992.
  205.      warwick@cs.uq.oz.au         pareis@cs.tu-berlin.de
  206.  
  207. COPYING
  208.      This functionality is part of the GEM++ library,
  209.      and is Copyright 1993 by Warwick W. Allison.
  210.  
  211.      GEM++ is free and protected under the GNU Library General Public
  212.      License.
  213.  
  214.      You are free to copy and modify these sources, provided you
  215.      acknowledge the origin by retaining this notice, and adhere to
  216.      the conditions described in the GNU LGPL.
  217.